/*
	Copyright (c) 2011 Andrey O. Zbitnev (azbitnev@gmail.com)
	Licensed under the MIT License (LICENSE).

	$Id: ys.placeholder.js 4 2012-04-06 08:42:07Z azbitnev@gmail.com $

	version: 0.7pa
*/

(function ($) {

	$.ys.placeholder = {

		create: function (selector, options) {

			var defaults = {
			}

			var opts = $.extend(defaults, options);

			if (!$.ys.placeholder.installed) {
				var savedVal = $.fn.val
				$.fn.val = function (value) {
					if (value === undefined)
						return ($(this).hasClass('ys-placeholder') ? '' : savedVal.apply(this, arguments))
					if ($(this).hasClass('ys-placeholder') && value != $(this).data('ys-placeholder'))
						$(this).removeClass('ys-placeholder')
					return savedVal.apply(this, arguments)
				}
				$.ys.placeholder.installed = true
			}

			return $(selector).each(function () {

				var $el = $(this)
				var info = ($el.attr('placeholder') ? $el.attr('placeholder') : $el.data('ys-placeholder'))

				$el.removeAttr('placeholder')
				$el.data('ys-placeholder', info)
				$el.val(info)

				if (!$el.hasClass('ys-placeholder'))
					$el.addClass('ys-placeholder')

			}).focusin(function () {

				var $el = $(this)
				var info = $el.data('ys-placeholder')

				if ($el.hasClass('ys-placeholder') && this.value == info) {
					this.value = ''
					$el.removeClass('ys-placeholder')
					if (!$el.attr('title')) {
						$el.attr('title', info)
						$el.data('ys-placeholder-title', 1)
					}
				}

			}).focusout(function () {

				var $el = $(this)

				if (this.value == '') {
					var info = $el.data('ys-placeholder')
					$el.addClass('ys-placeholder')
					$el.val(info)
					if ($el.data('ys-placeholder-title')) {
						$el.attr('title', '')
						$el.data('ys-placeholder-title', 0)
					}
				}
			})
		}
	}

})(jQuery);

